﻿using GalaSoft.MvvmLight;
using System.Collections.ObjectModel;
using SGT.Model;
using GalaSoft.MvvmLight.Command;

namespace SGT
{
    /// <summary>
    /// This class contains properties that a View can data bind to.
    /// <para>
    /// Use the <strong>mvvminpc</strong> snippet to add bindable properties to this ViewModel.
    /// </para>
    /// <para>
    /// You can also use Blend to data bind with the tool's support.
    /// </para>
    /// <para>
    /// See http://www.galasoft.ch/mvvm/getstarted
    /// </para>
    /// </summary>
    public class ABMProvedoresViewModel : ViewModelBase
    {
        /// <summary>
        /// Initializes a new instance of the ABMProvedoresViewModel class.
        /// </summary>
        /// 
        private ManejadorSistema _modelo;
        private ObservableCollection<Proveedor> _Proveedores;
        private Proveedor _ProveedorSeleccionado;
        private Proveedor _ProveedorNuevo;
        public RelayCommand NuevoProveedor { get; private set; }
        //public RelayCommand SeleccionarProveedor { get; private set; }
        

        public ObservableCollection<Proveedor> Proveedores
        {
            get { return _Proveedores; }
            set
            {
                //esto no puede ser asi, ver de cambiar
                _Proveedores = value;
                RaisePropertyChanged("Proveedores");
            }
        }

        public Proveedor ProveedorSeleccionado
        {
            get { return _ProveedorSeleccionado; }
            set
            {
                _ProveedorSeleccionado = value;
                RaisePropertyChanged("ProveedorSeleccionado");
            }
        }

        public Proveedor ProveedorNuevo
        {
            get { return _ProveedorNuevo; }
            set
            {
                _ProveedorNuevo = value;
                RaisePropertyChanged("ProveedorNuevo");
            }
        }


        public ABMProvedoresViewModel()
        {
            if (IsInDesignMode)
            {
               // _Proveedores = Controlador.GetProveedores();
            }
            else
            {
                actualizar();
                if (_ProveedorNuevo == null)
                    _ProveedorNuevo = new Proveedor();
                NuevoProveedor = new RelayCommand(InsertarProveedor);
            }
        }
        
        public ABMProvedoresViewModel(ManejadorSistema modelo)
        {
            if (IsInDesignMode)
            {
                // _Proveedores = Controlador.GetProveedores();
            }
            else
            {
                _modelo = modelo;
                actualizar();
                if (_ProveedorNuevo == null)
                    _ProveedorNuevo = new Proveedor();
                NuevoProveedor = new RelayCommand(InsertarProveedor);
            }
        }





        private void InsertarProveedor()
        {
            //Controlador.InsertarProveedor(ProveedorNuevo);
            actualizar();
        }

        private void actualizar()
        {
            //Proveedores = Controlador.GetProveedores();
        }
       

        ////public override void Cleanup()
        ////{
        ////    // Clean own resources if needed

        ////    base.Cleanup();
        ////}
    }
}